1 -*-text-*---------------------------------------------------------------
2 supercollider 3 for linux
3 ------------------------------------------------------------------------
5 ------------------------------------------------------------------------
7 ------------------------------------------------------------------------
9 ------------------------------------------------------------------------
11 SuperCollider is a synthesis engine (scsynth) and programming language
12 (sclang), originally Mac-based but now very widely used on Linux
13 (since Stefan Kersten ported the code in 2003). SuperCollider is free
14 software under the GPL - its main homepage is at
16 http://supercollider.sourceforge.net
18 to get further information on supercollider usage or development, you
19 might consider subscribing to the mailing lists
21 http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
23 ------------------------------------------------------------------------
25 (most of these will be available in your linux distribution as packages )
26 ------------------------------------------------------------------------
29 http://www.gnu.org/software/gcc/
30 gcc versions < 3.0 are missing some required c++ features
33 http://jackit.sourceforge.net/
34 jack audio connection kit
37 http://www.mega-nerd.com/libsndfile/
38 _the_ soundfile i/o library
40 * pkg-config >= 0.14.0
41 http://www.freedesktop.org/software/pkgconfig/
42 facilitates checking for installed packages when compiling from
47 configuration and build tool based on python
51 fast FFT transform library (for frequency-domain analysis,
52 phase-vocoder effects)
54 ------------------------------------------------------------------------
55 build requirements (optional features)
56 (most of these will be available in your linux distribution as packages )
57 ------------------------------------------------------------------------
60 http://www.alsa-project.org/
61 advanced linux sound architecture drivers and library, for sclang's
65 http://savannah.gnu.org/projects/readline
66 provides convenient CLI interface for sclang
67 (if unavailable, set READLINE=0 as an argument to scons)
70 http://www.porchdogsoft.com/products/howl/
71 zeroconf service dicovery implementation
75 a more powerful zeroconf service discovery implementation
78 http://www.kernel.org/
79 for sclang's linux input device (LID) interface
81 * for scel: the Emacs interface see the README in the directory
84 * for sced: the gedit interface see the README in the directory
87 * for scvim: the vim interface see the README in the directory
91 ------------------------------------------------------------------------
92 build requirements (debian users)
93 ------------------------------------------------------------------------
95 on debian (unstable) you can install the following packages and be set
96 for building supercollider:
108 ------------------------------------------------------------------------
110 ------------------------------------------------------------------------
112 building with scons is not really different from building with
113 autoconf, automake and related tools.
117 gives an overview of scons options.
121 lists package specific options variables and their default values.
122 (Note: some options allow to disable the dependencies on fftw and on
123 libsndfile, but those dependencies should be considered compulsory for
124 most standard setups since they provide much core sc functionality.)
126 options can be set on the command line
128 $ scons VARIABLE=VALUE
130 and are cached in a file called scache.conf (which can be edited with
131 your favorite editor) for use in the next scons invocation.
133 in order to build the whole package, call scons without arguments
134 (apart from option variables). in order to install the package, call
135 scons with the `install' target:
139 any target (including `install') can be cleaned with the `-c' option
140 to scons; note that cleaning the `install' target also removes locally
143 The option SCEL installs the emacs editor. For the sced and scvim editors,
144 please use the scons scripts in their respective directories (in editors/).
146 Note that the language will only build 32bit. To compile the language as
147 32bit binary on a 64bit installation, a multilib compiler and 32bit
148 libraries are required (on debian systems, the packages are gcc-multilib
149 g++-multilib, ia32-libs, libc6-dev-i386 and lib32asound2-dev).
152 ------------------------------------------------------------------------
153 Building a Debian package
154 ------------------------------------------------------------------------
156 In our SVN we have debian packaging rules. These were designed on Ubuntu
157 but we believe they should work on most common debian systems - please
158 let us know if you have any issues with this way of building:
160 cd SuperCollider3 # (or wherever your SC source is)
161 svn co https://supercollider.svn.sourceforge.net/svnroot/supercollider/packages/ubuntu/ debian
164 Eventually, some .deb packages will be put in the parent folder, and can
165 then be installed just like any other Debian package. For example:
167 dpkg -i ../supercollider*.deb
169 (Note: the packages supercollider-scel*.deb, supercollider-scvim*.deb,
170 supercollider-sced*.deb, represent the different editor integrations:
171 emacs, vim, gedit. You might not want to install all of those, but
172 choose your preferred editor.)
175 ------------------------------------------------------------------------
176 running scsynth (standalone)
177 ------------------------------------------------------------------------
179 run scsynth without options to get an option summary. don't forget to
180 start jackd before trying to use scsynth. if you want to add
181 directories to supercollider's search path or assign default jack
182 ports, set up your environment as described below.
184 you can specify the number of jack input/output channels created with
185 the options -i and -o, respectively.
187 the -H option can be used to specify a jack server to connect to and
188 to set the jack client identifier. the format is either
190 <SERVER-NAME>:<CLIENT-NAME>
196 when connecting to the default server.
198 ------------------------------------------------------------------------
200 ------------------------------------------------------------------------
202 it is recommended to use sclang in combination with your preferred text
203 editor out of emacs/vim/gedit. see the README files in `linux/*' for
204 installation and usage. as an alternative you can simply run the
205 `sclang' executable which will provide a readline-based interface.
207 sclang executes the startup file `~/.sclang.sc' after class library
208 initialization. this file can contain statements to set up your
209 supercollider environment, like setting default variables. an example can
210 be found in `linux/examples/sclang.sc'.
212 you _have_ to have a directory `~/share/SuperCollider/'. This is where
213 automatically a synthdefs directory is created. It is also the place
214 to put Extensions to the class library, in a folder called Extensions.
216 the runtime directory is either the current working directory or the
217 path specified with the `-d' option.
219 for advanced setups, sclang's compilation search path can be
220 customized with a library configuration file. an example is provided
221 in `linux/examples/sclang.cfg'; install it as `/etc/sclang.cfg' or
222 `~/.sclang.cfg'. This config file is only needed when you want to
223 _exclude_ directories from the class library. Otherwise (so in most cases)
226 ------------------------------------------------------------------------
228 ------------------------------------------------------------------------
230 the jack audio driver interface is configured based on various
231 environment variables:
233 * SC_JACK_DEFAULT_INPUTS comma separated list of jack ports that
234 scsynth's inputs should connect to by default
236 $ export SC_JACK_DEFAULT_INPUTS="system:capture_1,system:capture_2"
238 in order to connect the first ports of one jack client, it is possible
239 to specify only the client name
241 $ export SC_JACK_DEFAULT_INPUTS="system"
243 * SC_JACK_DEFAULT_OUTPUTS comma separated list of jack ports that
244 scsynth's outputs should be connected to by default.
246 $ export SC_JACK_DEFAULT_OUTPUTS="system:playback_1,system:playback_2"
248 in order to connect the first ports of one jack client, it is possible
249 to specify only the client name
251 $ export SC_JACK_DEFAULT_OUTPUTS="system"
253 two additional environment variables substitute directories for the default
254 search path for plugins and synth definitions, respectively. directory
255 names are separated by ':' as in the unix PATH variable:
257 * SC_PLUGIN_PATH, SC_SYNTHDEF_PATH
259 $ export SC_SYNTHDEF_PATH="./synthdefs:/home/sk/SuperCollider/synthdefs"
261 ------------------------------------------------------------------------
263 ------------------------------------------------------------------------
265 apart from the sites listed above, some more documentation links ...
267 a wiki for supercollider, set up by julian rohrhuber, is at
269 http://swiki.hfbk-hamburg.de/MusicTechnology/6
271 linux specific information can be found at
273 http://swiki.hfbk-hamburg.de/MusicTechnology/478
275 ------------------------------------------------------------------------
277 ------------------------------------------------------------------------
279 please report bugs either to the sc-users or sc-dev mailing lists.
281 ------------------------------------------------------------------------
282 contributors to this document
283 ------------------------------------------------------------------------
285 stefan kersten <sk AT k-hornz DOT de>
287 maurizio umberto puxeddu
291 nescivi (marije baalman)
294 ------------------------------------------------------------------------
296 ------------------------------------------------------------------------
298 thanks to james mccartney, for making this great piece of audio
299 software publically and freely available.
301 ------------------------------------------------------------------------
303 ------------------------------------------------------------------------